A program written in a parallel programming language (hereinafter, process-parallel program) is executed in parallel by a plurality of information processing devices (hereinafter, computers). Processes executed in parallel by a plurality of computers are herein referred to as process.
Some process-parallel programs are written in parallel programming languages that use partitioned global address space (PGAS) such as, for example, Fortran 2008 coarrays and Unified Parallel C (UPC). The program written in a parallel-programming language that uses PGAS is executed in parallel by a plurality of computers. The plurality of computers each have a processor (central processing unit: CPU), and a main memory, access to which is controlled by each processor. The plurality of main memories configures a global address space. This global address space is the distributed memory partitioned to each processor so as to be distributed memories.
During execution, the process-parallel program allocates to each process memory spaces having sizes that dynamically vary for each process. Each of processes can refer to the memory spaces of other processes. However, reference cost (e.g., access time) is higher when referring to the memory spaces of other processes than when referring the memory space of its own process. This is a general description of PGAS.
A compiler is described in Japanese Laid-open Patent Publication Nos. 2009-199520 and H06-250988.